import axios from 'axios' // 引入axios
import store from '@/store' // 引入store
import jsonBig from 'json-bigint' //引入处理js中大于2^53的整数（ 9007199254740992）
const request = axios.create({
  baseURL: 'http://ttapi.research.itcast.cn/', // 基础路径
  //使用
  transformResponse: [
    function(data) {
      try {
        // 如果转换成功则返回转换的数据结果
        return jsonBig.parse(data) //返回处理的数据
      } catch (err) {
        // 如果转换失败，则包装为统一数据格式并返回
        return {
          data
        }
      }
    }
  ]
})

// 设置请求拦截器，设置含token的请求头
request.interceptors.request.use(
  function(config) {
    // config ：本次请求的配置对象
    // config 里面有一个属性：headers

    const { user } = store.state
    if (user && user.token) {
      config.headers.Authorization = `Bearer ${user.token}`
    } // 如果user和usertoken，则设置请求头
    return config
  },
  function(error) {
    // Do something with request error
    return Promise.reject(error) // 返回一个错误状态的promise对象
  }
)

// 响应拦截器

export default request //导出axios对象
